package DataStructureAndAlgorithm.Tedukuri.位运算;
import java.util.Scanner;
/*
如果直接计算a乘b这会超过 long long 的最大范围，所以采用类似于快速幂的思想
把 b写成二进制形式，然后如果某位上为1就加上它a*（2^n）次方（n与这位的位置有关）
并且每次计算后取模就可以了
观察可发现每次的可由前一次*2推出(记得取模)

时间复杂度分析：logn
 */
public class AcWing_90 {
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        long a = in.nextLong();
        long b = in.nextLong();
        long p = in.nextLong();
        long ans = 0;
        for (; b != 0; b >>= 1){
            if ((b & 1) != 0){
                ans = (ans + a) % p;
            }
            a = a * 2 % p;
        }
        System.out.print(ans);
    }
}
